Programmable device having hardened circuits for predetermined digital signal processing functionality

ABSTRACT

An example programmable device includes a configuration memory configured to store configuration data; a programmable logic having a configurable functionality based on the configuration data in the configuration memory; a signal conversion circuit; a digital processing circuit; an endpoint circuit coupled to the signal conversion circuit through the digital processing circuit; wherein the digital processing circuit includes a first one or more digital processing functions implemented as hardened circuits each having a predetermined functionality, and a second one or more processing functions implemented by the configurable functionality of the programmable logic.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. non-provisional patentapplication Ser. No. 16/682,818, filed Nov. 13, 2019, “ProgrammableDevice Having Hardened Circuits For Predetermined Digital SignalProcessing Functionality”, which is herein incorporated by reference intheir entirety.

TECHNICAL FIELD

Examples of the present disclosure generally relate to programmabledevices and, in particular, to programmable devices having hardenedcircuits for predetermined digital signal processing functionality.

BACKGROUND

Integrated circuits (ICs) may be implemented to perform specifiedfunctions. One type of IC is a programmable IC, such as a fieldprogrammable gate array (FPGA) or a system-on-chip (SoC) including anFPGA-based programmable fabric. An FPGA fabric typically includes anarray of programmable tiles, These programmable tiles may include, forexample, input/output blocks (IOBs), configurable logic blocks (CLBs),dedicated random access memory blocks (BRAM), multipliers, digitalsignal processing blocks (DSPs), processors, dock managers, delay lockloops (DLLs), and so forth.

Each programmable the typically includes both programmable interconnectcircuitry and programmable logic circuitry. The programmableinterconnect circuitry typically includes a large number of interconnectlines of varying lengths interconnected by programmable interconnectpoints (PIPs). The programmable logic circuitry implements the logic ofa user design using programmable elements that may include, for example,function generators, registers, arithmetic logic, and so forth.

The programmable interconnect circuitry and programmable logic circuitryare typically programmed by loading a stream of configuration data intointernal configuration memory cells that define how the programmableelements are configured. The configuration data may be read from memory(e.g., from an external PROM) or written into the FPGA by an externaldevice. The collective states of the individual memory cells thendetermine the function of the FPGA.

Some applications for programmable ICs include frequently performedfunctions. It is desirable to provide hardened implementations of suchfrequently performed functions in the programmable IC in order toconserve resources in the programmable fabric and reduce power, whichenables more integration than is possible otherwise due to thermal ordie size limitations.

SUMMARY

Techniques for providing programmable devices having hardened circuitsare described. In an example, a programmable device includes: aconfiguration memory configured to store configuration data; aprogrammable logic having a configurable functionality based on theconfiguration data in the configuration memory; a signal conversioncircuit; a digital processing circuit; an endpoint circuit coupled tothe signal conversion circuit through the digital processing circuit;wherein the digital processing circuit includes a first one or moredigital processing functions implemented as hardened circuits eachhaving a predetermined functionality, and a second one or moreprocessing functions implemented by the configurable functionality ofthe programmable logic.

In another example, a programmable device includes: a configurationsubsystem; at least one programmable subsystem having a configurablefunctionality determined by the configuration subsystem; a signalconversion circuit; a digital processing circuit; an endpoint circuitcoupled to the signal conversion circuit through the digital processingcircuit; wherein the digital processing circuit includes at least onetransform circuit or at least one digital front end (DFE) circuit eachimplemented as a hardened circuit having a predetermined functionality.

In another example, a programmable device, comprising: a configurationsubsystem; at least one programmable subsystem having a configurablefunctionality determined by the configuration subsystem; a signalconversion circuit; a digital processing circuit; an endpoint circuitcoupled to the signal conversion circuit through the digital processingcircuit; wherein the digital processing circuit includes a first one ormore digital processing functions implemented as hardened circuits eachhaving a predetermined functionality, and a second one or more digitalprocessing functions implemented by the configurable functionality ofthe at least one programmable subsystem.

These and other aspects may be understood with reference to thefollowing detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features can be understoodin detail, a more particular description, briefly summarized above, maybe had by reference to example implementations, some of which areillustrated in the appended drawings. It is to be noted, however, thatthe appended drawings illustrate only typical example implementationsand are therefore not to be considered limiting of its scope.

FIG. 1A is a block diagram depicting a programmable IC according to anexample.

FIG. 1B illustrates a field programmable gate array (FPGA)implementation of a programmable IC according to an example.

FIG. 1C is a block diagram depicting a multi-integrated circuit (IC)programmable device according to an example.

FIG. 2 is a block diagram depicting a floorplan of a programmable deviceaccording to an example.

FIG. 3 is a block diagram depicting a signal processing systemimplemented in a programmable device according to an example.

FIG. 4 is a block diagram depicting a hardened circuit according to anexample.

FIG. 5 is a block diagram depicting a signal processing systemimplemented in a programmable device according to an example.

FIG. 6 is a block diagram depicting a signal processing systemimplemented in a programmable device according to an example.

FIG. 7 is a block diagram depicting a signal processing systemimplemented in a programmable device according to an example.

FIG. 8 is a block diagram depicting a signal processing systemimplemented in a programmable device according to an example.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe figures. It is contemplated that elements of one example may bebeneficially incorporated in other examples.

DETAILED DESCRIPTION

Various features are described hereinafter with reference to thefigures. It should be noted that the figures may or may not be drawn toscale and that the elements of similar structures or functions arerepresented by like reference numerals throughout the figures. It shouldbe noted that the figures are only intended to facilitate thedescription of the features. They are not intended as an exhaustivedescription of the claimed invention or as a limitation on the scope ofthe claimed invention. In addition, an illustrated example need not haveall the aspects or advantages shown. An aspect or an advantage describedin conjunction with a particular example is not necessarily limited tothat example and can be practiced in any other examples even if not soillustrated or if not so explicitly described.

FIG. 1A is a block diagram depicting a programmable device 1 accordingto an example. The programmable device 1 includes programmable logic(PL) 3 (also referred to as a programmable fabric), input/output (IO)circuits 68, serial transceivers 67, signal conversion circuits 66,hardened circuits 90, configuration logic 25, and configuration memory26. The programmable device 1 can be coupled to external circuits, suchas nonvolatile memory 27, dynamic random access memory (DRAM) 28, andother circuits 29. In various examples, the programmable device 1further includes a processing system (PS) 2, a network-on-chip (NOC) 55,a data processing engine (DPE) array 56, peripheral interconnect 61,peripheral circuits 62, and inter-die interconnect circuits 64.

The PL 3 includes logic cells 30, support circuits 31, and programmableinterconnect 32. The logic cells 30 include circuits that can beconfigured to implement general logic functions of a plurality ofinputs. The support circuits 31 include dedicated circuits, such asdigital signal processors, memories, and the like. The logic cells andthe support circuits 31 can be interconnected using the programmableinterconnect 32. Information for programming the logic cells 30, forsetting parameters of the support circuits 31, and for programming theprogrammable interconnect 32 is stored in the configuration memory 26 bythe configuration logic 25. The configuration logic 25 can obtain theconfiguration data from the nonvolatile memory 27 or any other source(e.g., the DRAM 28 or from the other circuits 29). In some examples, theconfiguration logic 25 includes a platform management controller (PMC)72. The PMC 72 is configured to boot and configure the subsystems of theprogrammable device 1, such as the PL 3, the PS 2, the NoC 55, the DPEarray 56, the signal conversion circuits 66, the hardened circuits 90,and the like.

The IO circuits 68 provide an external interface for the subsystems ofthe programmable device 1, such as the PL 3, the PS 2, and the like. Insome examples, the IO circuits 68 include memory controllers 70configured to interface external memories (e.g., the DRAM 28). Otherconnectivity circuits can include the peripheral interconnect 61, theperipheral circuits 62, and the inter-die interconnect circuits 64. Theperipheral interconnect 61 includes bus interface circuits, such asperipheral component interconnect express (PCIe) circuits and the like.The peripheral circuits 62 include universal serial bus (USB) ports,Ethernet ports, universal asynchronous transceiver (UART) ports, serialperipheral interface (SPI) ports, general purpose IO (GPIO) ports,serial advanced technology attachment (SATA) ports, and the like. Theinter-die interconnect circuits 64 include circuits configured tointerface like inter-die interconnect circuits in other programmabledevice(s) (e.g., for when the programmable device 1 is one die in amulti-die integrated circuit package). The serial transceivers 67include high-speed transmit/receive circuits configured to provide anexternal IO interface for the programmable device 1.

The PS 2 can include microprocessor(s), memory, support circuits, IOcircuits, and the like. The NOC 55 is configured to provide forcommunication between subsystems of the programmable device 1, such asbetween the PS 2, the PL 3, the hardened circuits 90, and the DPE array56. The DPE array 56 can include an array of DPE's configured to performdata processing, such as an array of vector processors. The signalconversion circuits 66 include analog-to-digital converters (ADCs) anddigital-to-analog converters (DACs).

The hardened circuits 90 comprise circuits with predeterminedfunctionality. A given hardened circuit 90 can include one or morepredetermined functions. Example hardened circuits 90 include filters,mixers, sample-rate converters, transforms circuits (e.g., Fast-FourierTransform (FFT)), and the like. A hardened circuit 90 can beprogrammable to configure specific predetermined functionalities orselect among predetermined functionalities. However, in contrast to acircuit in the PL 3, a hardened circuit 90 cannot be configured orreconfigured with different functionality. For example, a hardenedcircuit 90 can include a filter having two predetermined and selectablefunctionalities. A third functionality cannot be added to the hardenedcircuit 90, nor can one of the two functionalities be removed from thehardened circuit 90. In contrast, a filter configured in the PL 3 can bereconfigured to add one more additional functionalities or to remove oneor more functionalities. Further, a filter configured in the PL 3 can beremoved entirely and replaced with another circuit. In contrast, ahardened circuit 90 cannot be removed from the programmable device 1(but can be unused if desired).

FIG. 1B illustrates a field programmable gate array (FPGA)implementation of the PL 3 according to an example. The PL 3 shown inFIG. 1B can be used in any example of the programmable devices describedherein. The PL 3 includes a large number of different programmable tilesincluding configurable logic blocks (“CLBs”) 33, random access memoryblocks (“BRAMs”) 34, input/output blocks (“IOBs”) 36, configuration andclocking logic (“CONFIG/CLOCKS”) 42, digital signal processing blocks(“DSPs”) 35, specialized input/output blocks (“I/O”) 41 (e.g.,configuration ports and clock ports), and other programmable logic 39such as digital clock managers, analog-to-digital converters, systemmonitoring logic, and so forth.

In some PLs, each programmable tile can include at least oneprogrammable interconnect element (“INT”) 43 having connections to inputand output terminals 48 of a programmable logic element within the sametile, as shown by examples included at the top of FIG. 1B. Eachprogrammable interconnect element 43 can also include connections tointerconnect segments 49 of adjacent programmable interconnectelement(s) in the same tile or other tile(s). Each programmableinterconnect element 43 can also include connections to interconnectsegments 50 of general routing resources between logic blocks (notshown). The general routing resources can include routing channelsbetween logic blocks (not shown) comprising tracks of interconnectsegments (e.g., interconnect segments 50) and switch blocks (not shown)for connecting interconnect segments. The interconnect segments of thegeneral routing resources (e.g., interconnect segments 50) can span oneor more logic blocks. The programmable interconnect elements 43 takentogether with the general routing resources implement a programmableinterconnect structure (“programmable interconnect”) for the illustratedPL.

In an example implementation, a CLB 33 can include a configurable logicelement (“CLE”) 44 that can be programmed to implement user logic plus asingle programmable interconnect element (“INT”) 43. A BRAM 34 caninclude a BRAM logic element (“BRL”) 45 in addition to one or moreprogrammable interconnect elements. Typically, the number ofinterconnect elements included in a tile depends on the height of thetile. In the pictured example, a BRAM tile has the same height as fiveCLBs, but other numbers (e.g., four) can also be used. A DSP tile 35 caninclude a DSP logic element (“DSPL”) 46 in addition to an appropriatenumber of programmable interconnect elements. An IOB 36 can include, forexample, two instances of an input/output logic element (“IOL”) 47 inaddition to one instance of the programmable interconnect element 43. Aswill be clear to those of skill in the art, the actual I/O padsconnected, for example, to the I/O logic element 47 typically are notconfined to the area of the input/output logic element 47.

In the pictured example, a horizontal area near the center of the die(shown in FIG. 1B) is used for configuration, clock, and other controllogic. Vertical columns 51 extending from this horizontal area or columnare used to distribute the clocks and configuration signals across thebreadth of the PL.

Some PLs utilizing the architecture illustrated in FIG. 1B includeadditional logic blocks that disrupt the regular columnar structuremaking up a large part of the PL. The additional logic blocks can beprogrammable blocks and/or dedicated logic.

Note that FIG. 1B is intended to illustrate only an exemplary PLarchitecture. For example, the numbers of logic blocks in a row, therelative width of the rows, the number and order of rows, the types oflogic blocks included in the rows, the relative sizes of the logicblocks, and the interconnect/logic implementations included at the topof FIG. 1B are purely exemplary. For example, in an actual PL more thanone adjacent row of CLBs is typically included wherever the CLBs appear,to facilitate the efficient implementation of user logic, but the numberof adjacent CLB rows varies with the overall size of the PL.

FIG. 1C is a block diagram depicting a multi-die programmable device 54according to an example. The multi-die programmable device 54 includes aplurality of programmable devices 1, e.g., programmable devices 1A, 1B,1C, and 1D. In an example, each programmable device 1 is an IC diedisposed on an interposer 60. Each programmable device 1 comprises asuper logic region (SLR) 53 of the programmable device 54, e.g., SLRs53A, 53B, 53C, and 53D. The programmable devices 1 are interconnectedthrough conductors on the interposer 60 (referred to as super long lines(SLLs) 52) and inter-die interconnect circuits 64 disposed within eachof the programmable devices 1.

FIG. 2 is a block diagram depicting a floorplan 200 of the programmabledevice 1 according to an example. In the example, the programmabledevice 1 includes columns of tiles that include the various circuitsdescribed above. For purposes of clarity by example, some circuits areomitted. In the example, the floorplan 200 shows columns of tiles havingthe PL 3. A column of tiles having DAC circuits 204. A column of tileshaving ADC circuits 206. A column of tiles having inter-die interconnectcircuits 64. A column of tiles having the hardened circuits 90. A columnof tiles having the serial transceivers 67. The columnar tile structurecan be interrupted by some subsystems, such as the PS 2, the NOC 55, andthe DPE array 56.

In examples described herein, the hardened circuits 90 are used toimplement digital processing circuits between the DACs 204/ADCs 206 andendpoint circuits, such as the serial transceivers 67 and/or circuitsconfigured in the PL 3. To facilitate formation of the digitalprocessing circuits, the hardened circuits 90 can be connected to the PL3, the signal conversion circuits 66, the NOC 55, the inter-die circuits54, and the transceivers 67. The connections can be implemented usingthe programmable interconnect in the PL 3, through the NOC 55, by directconnections, or some combination thereof. In some examples, thefloorplan 200 includes a plurality of tiles, each of which may containsome or all of the hardened circuits 90. This allows for scalabilitybased on the number of the ADC circuits 206 and DAC circuits 204.

In various applications, the programmable device 1 can be used to sendand receive data received wirelessly using various radio frequency (RF)techniques. The ADCs 206 are configured to generate digital signals fromanalog signals received from external antennae (not shown). Theresulting digital signals are then processed by some digital processingcircuit and supplied to an endpoint circuit, which can be a circuit inthe PL 3, transceivers 67, or some other subsystem. In reverse, thedigital processing circuit can process digital signals to be transmittedfrom the endpoint circuits and supply the digital signals to the DACs204. The DACs 204 generate analog signals from the digital signals,which are transmitted using the external antennae (not shown).

In some applications, the digital processing circuit used in theapplication described above can be formed in the PL 3. However, thisrequires the use of PL resources which are now otherwise unavailable foruse by other circuitry. Accordingly, in some examples, a least a portionof the digital processing circuit is implemented using the hardenedcircuits 90. This frees PL resources for use by other circuitry in thesystem. However, since the hardened circuits 90 include connections tothe PL 3, there is flexibility to implement some of the digitalprocessing circuit in the PL 3. This allows a user to provide customlogic along with the hardened circuits 90 to implement the digitalprocessing circuit as desired for the particular application. The customlogic may also be used to implement the control path of the digitalprocessing circuit, which enhanced flexibility, while maintaining powerefficiency as the data processing remains in the hardened domain.

FIG. 3 is a block diagram depicting a signal processing system 300implemented in the programmable device 1 according to an example. Thesignal processing system 300 includes the signal conversion circuits 66,a digital processing circuit 301, and endpoint circuits 306. The signalconversion circuits 66 perform analog-to-digital and digital-to-analogconversion as described above. The digital processing circuit 301 isconfigured to process input for, and output of, the signal conversioncircuits 66. In an example, the digital processing circuit 301 includesfirst digital processing functions implemented as hardened circuits 90each having a predetermined functionality, and second digital processingfunctions implemented by the configurable functionality of theprogrammable subsystem(s) 308 (e.g., configurable functionality of thePL 3, the DPE array 56, and/or the PS 2). By implementing some digitalprocessing functions as hardened circuits 90, the digital processingcircuit 301 saves power and area in the programmable device. The type ofdigital processing functions that can be hardened include those that arecommon functions across various applications, or common functions usedby various standards to which applications adhere (e.g., 4G/5G wirelesscommunications). Examples include FFT/iFFT transforms, channelfiltering, up and down sample rate conversion, crest factor reduction(CFR), and the like. The type of digital processing functions that canbe programmed using configurable functionality of the programmablesubsystem(s) 308 include those that are non-standard or unique to aparticular application. For example, custom logics 304 can includedigital predistortion (DPD) logic (e.g., a DPD circuit), calibrationlogic (e.g., a calibration circuit), beamforming, automatic gain control(AGC), timing and synchronization, and the like.

In an example, the digital processing circuit 301 includes a pluralityof the hardened circuits 90. The hardened circuits 90 can include, forexample, one or more transform circuits 320 (e.g., transform functions)and one or more digital front end (DFE) circuits 322 (e.g., DFEfunctions). The transform circuits 320 can include FFT, iFFT, and thelike transform and inverse transform circuits. The DFE circuits 322 caninclude filters, sample rate converters, mixers, signal combiners, andthe like.

In an example, the digital processing circuit 301 also includes one ormore custom logics 304 programmed in at least one programmable subsystem308 of the device. The programmable subsystems 308 can include, forexample, the PL 3, the PS 2, the DPE array 56, and the like. Forexample, the custom logics 304 can include custom circuits configured inthe PL 3. The custom logics 304 can include custom processors configuredin the DPE array 56. The custom logics 304 can include a processorexecuting custom software in the PS 2. In examples, the custom logics304 can include combinations of such implementations. The programmablesubsystem(s) 308 are programmed based on a configuration subsystemcomprising the configuration memory 26 and the PMC 72. The configurationmemory 26 includes configuration data 302 for configuration customcircuits in the PL 3. The PMC 72 provides configuration data to the DPEarray 56 and the PS 2, as well as the hardened circuits 90. The hardenedcircuits 90 and the custom logics 304 can be coupled in any of variousserial, parallel, or like type arrangements.

FIG. 4 is a block diagram depicting a hardened circuit 90 according toan example. The hardened circuit 90 includes various interfaces,including an interface 402 to one or more other hardened circuits 90, aninterface 404 to the PL 3, and an interface 406 to the NOC 55. Note thata given hardened circuit 90 can include all or a portion of theinterfaces 402, 404 and 406. In some examples, the hardened circuit 90includes an interface 408 to the PMC 72 for configuration thereof. Thehardened circuit 90 can also include an interface 410 coupled to aspecific control circuit (e.g., another hardened circuit 90 or a customlogic in a programmable subsystem). The control circuit can controloperation of the hardened circuit 90 (e.g., the control circuit can be astate machine or like type circuit).

FIG. 5 is a block diagram depicting a signal processing system 500implemented in the programmable device 1 according to an example. Thesignal processing system 500 includes the signal conversion circuits 66,a plurality of hardened circuits 90, a plurality of custom circuits 304configured in the PL 3, and endpoint circuit 306. The signal conversioncircuits 66 perform analog-to-digital and digital-to-analog conversionas described above. The hardened circuits 90 each perform one or morefunctions, such as filtering, sample-rate conversion, mixing, carriercombining/splitting, time to frequency conversion, frequency to timeconversion, and the like. The hardened circuits 90 each can include aninterface to the PL 3. Configuration data 302 loaded to theconfiguration memory 26 configures the PL 3 with the custom circuits304. Each custom circuit 304 can be connected to one or more of thehardened circuits 90. Each custom circuit 304 can be connected to one ormore others of the custom circuits 304. One or more of the customcircuits 304 can be connected to the endpoint circuit 306. One or moreof the custom circuits 304 can be coupled to the signal conversioncircuits 66. One or more of the hardened circuits 90 can be coupled tothe endpoint circuits 306.

The hardened circuits 90 and the custom circuits 304 form a digitalprocessing circuit 301 disposed between the signal conversion circuits66 and the endpoint circuit 306. While the endpoint circuit 306 is shownas external to the PL 3 (e.g., a serial transceiver), the endpointcircuit 306 can be configured in the PL 3.

In operation, the PMC 72 receives information for programming theprogrammable device 1. The PMC 72 loads configuration data for the PL 3to the configuration memory 26. The PMC 72 also programs one or more ofthe hardened circuits 90 to initialize, select functionality, or thelike. As noted above, each hardened circuit 90 has one or morepredefined functions that cannot be changed. However, those function(s)can be programmable and the information for programming them can bereceived and provided by the PMC 72. In contrast to the hardenedcircuits 90, the PL 3 has a configurable functionality based on theconfiguration data 302 stored in the configuration memory 26. Afterprogramming and configuration, the programmable device 1 implements adigital processing circuit 301 between the signal conversion circuits 66and the endpoint circuit 306 that includes the hardened circuits 90 andthe custom circuits 304.

FIG. 6 is a block diagram depicting a signal processing system 600implemented in the programmable device 1 according to an example. Thesignal processing system 600 includes the signal conversion circuits 66,a plurality of hardened circuits 90, a plurality of custom logics 304configured in the DPE array 56, and endpoint circuit 306. The signalconversion circuits 66 perform analog-to-digital and digital-to-analogconversion as described above. The hardened circuits 90 each perform oneor more functions, such as filtering, sample-rate conversion, mixing,carrier combining/splitting, time to frequency conversion, frequency totime conversion, and the like. The hardened circuits 90 each can includean interface to the DPE array 56 (e.g., through the NOC 55). Each customlogic 304 can be connected to one or more of the hardened circuits 90.Each custom logic 304 can be connected to one or more others of thecustom logics 304. One or more of the custom logics 304 can be connectedto the endpoint circuit 306. One or more of the custom logics 304 can becoupled to the signal conversion circuits 66. One or more of thehardened circuits 90 can be coupled to the endpoint circuits 306.

The hardened circuits 90 and the custom circuits 304 form a digitalprocessing circuit 301 disposed between the signal conversion circuits66 and the endpoint circuit 306. While the endpoint circuit 306 is shownas external to the PL 3 (e.g., a serial transceiver), the endpointcircuit 306 can be configured in the PL 3.

In operation, the PMC 72 receives information for programming theprogrammable device 1. The PMC 72 loads configuration data for the DPEarray 56. The PMC 72 also programs one or more of the hardened circuits90 to initialize, select functionality, or the like. As noted above,each hardened circuit 90 has one or more predefined functions thatcannot be changed. However, those function(s) can be programmable andthe information for programming them can be received and provided by thePMC 72. In contrast to the hardened circuits 90, the DPE array 56 has aconfigurable functionality based on configuration data provided by thePMC 72. After programming and configuration, the programmable device 1implements a digital processing circuit 301 between the signalconversion circuits 66 and the endpoint circuit 306 that includes thehardened circuits 90 and the custom logics 304.

FIG. 7 is a block diagram depicting a signal processing system 700implemented in the programmable device 1 according to an example. Thesignal processing system 700 includes the signal conversion circuits 66,a plurality of hardened circuits 90, a plurality of custom logics 304configured in the PS 2, and endpoint circuit 306. The signal conversioncircuits 66 perform analog-to-digital and digital-to-analog conversionas described above. The hardened circuits 90 each perform one or morefunctions, such as filtering, sample-rate conversion, mixing, carriercombining/splitting, time to frequency conversion, frequency to timeconversion, and the like. The hardened circuits 90 each can include aninterface to the DPE array 56 (e.g., through the NOC 55). Each customlogic 304 is implemented by a processor executing software in the PS 2and can be connected to one or more of the hardened circuits 90. Eachcustom logic 304 can be connected to one or more others of the customlogics 304. One or more of the custom logics 304 can be connected to theendpoint circuit 306. One or more of the custom logics 304 can becoupled to the signal conversion circuits 66. One or more of thehardened circuits 90 can be coupled to the endpoint circuits 306.

The hardened circuits 90 and the custom circuits 304 form a digitalprocessing circuit 301 disposed between the signal conversion circuits66 and the endpoint circuit 306. While the endpoint circuit 306 is shownas external to the PL 3 (e.g., a serial transceiver), the endpointcircuit 306 can be configured in the PL 3.

In operation, the PMC 72 receives information for programming theprogrammable device 1. The PMC 72 loads configuration data for the PS 2.The PMC 72 also programs one or more of the hardened circuits 90 toinitialize, select functionality, or the like. As noted above, eachhardened circuit 90 has one or more predefined functions that cannot bechanged. However, those function(s) can be programmable and theinformation for programming them can be received and provided by the PMC72. In contrast to the hardened circuits 90, the PS 2 has a configurablefunctionality based on configuration data provided by the PMC 72. Afterprogramming and configuration, the programmable device 1 implements adigital processing circuit 301 between the signal conversion circuits 66and the endpoint circuit 306 that includes the hardened circuits 90 andthe custom logics 304.

FIG. 8 is a block diagram depicting a signal processing circuit 800according to an example. The signal processing circuit 800 includes amixture of custom circuits configured in the PL 3 and hardened circuits90. Serial transceivers 67 are coupled to custom frequency domainprocessing 802 implemented in the PL 3. The custom frequency domainprocessing 802 performs some custom processing of frequency domaininformation to be transmitted. The custom frequency domain processing802 is coupled to a hardened inverse Fast Fourier Transform (iFFT)circuit 804, which is implemented using one or more of the hardenedcircuits 90. The iFFT circuit 804 transforms the frequency domaininformation into time domain information. The iFFT circuit 804 iscoupled to custom time domain processing 806 configured in the PL 3. Thecustom time domain processing 806 performs some custom processing of thetime domain information to be transmitted.

In the reverse direction, the signal processing circuit 800 includescustom time domain processing 808, a hardened FFT 810, and customfrequency domain processing 812. The custom time domain processing 808performs some processing of received time domain information and isimplemented in the PL 3. The hardened FFT is implemented using one ormore of the hardened circuits 90 and is configured to transform timedomain information into frequency domain information. The customfrequency domain processing 812 is configured in the PL 3 and functionsto process the frequency domain information. The frequency domainprocessing 812 is coupled to the serial transceivers 67.

The output of the custom time domain processing 806, and the input ofthe custom time domain processing 808, are coupled to a switch 814. Theswitch 814 can be implemented in the PL 3 or can be a hardened circuitimplemented by one or more of the hardened circuits 90. The input/outputof the switch 814 is coupled to custom time domain processing 815. Thecustom time domain processing 815 is configured in the PL 3 and performssome processing of the time domain information to be transmitted or thathas been received. The custom time domain processing 815 is coupled to ahardened filter 816 implemented using one or more of the hardenedcircuits 90. The hardened filter 816 can have a programmable length andprogrammable coefficients. The hardened filter 816 can perform any typeof filtering operation. The hardened filter 816 is coupled to a hardenedsample rate converter 818 implemented using one or more hardenedcircuits 90. The hardened sample rate converter 818 functions toupsample or downsample the time domain information. The hardened samplerate converter 818 is coupled to a hardened mixer and carriercombiner/splitter 820 implemented using one or more of the hardenedcircuits 90. The hardened sample rate converter 818 can be programmablein the change in sample rate depending on signal bandwidth. The hardenedmixer and carrier combiner/splitter 820 is configured tomodulate/demodulate the time domain information, and to aggregate orsplit multiple streams of time domain signals, based on a particularmodulation scheme (e.g., orthogonal frequency division multiplexing(OFDM)). The mixer and carrier combiner/splitter 820 is coupled to aswitch 822. The switch 822 can be implemented in the PL 3 or can be ahardened circuit implemented by one or more of the hardened circuits 90.

An output of the switch 822 is coupled to a hardened crest factorreduction (CFR) circuit 826 implemented using one or more of thehardened circuits 90. An output of the CFR circuit 826 is coupled to acustom DPD circuit 828 implemented in the PL 3. An output of the DPDcircuit 828 is coupled to a DAC 830. An input of the switch 822 iscoupled to an output of an ADC 824. The ADC 824 and the DAC 830 are partof the signal conversion circuits 66.

The signal processing circuit 800 shown in FIG. 8 is one specificexample of the alternating processing between hardened circuits 90 andcustom circuits configured in the PL 3 performed by a specific digitalprocessing circuit between signal conversion circuits and an endpointcircuit. Those skilled in the art will appreciate that otherconfigurations are possible, including configurations that include allsignal processing circuit blocks implemented using the hardened circuits90.

While the foregoing is directed to specific examples, other and furtherexamples may be devised without departing from the basic scope thereof,and the scope thereof is determined by the claims that follow.

What is claimed is:
 1. A programmable device, comprising: a signalconversion circuit; a digital processing circuit; and an endpointcircuit coupled to the signal conversion circuit through the digitalprocessing circuit, wherein the digital processing circuit comprises ahardened circuit configured to perform a first processing function usinga predetermined functionality of the hardened circuit, and aprogrammable subsystem configured to perform a second processingfunction using a configurable functionality of the programmablesubsystem.
 2. The programmable device of claim 1, wherein the signalconversion circuit comprises at least one analog-to-digital conversion(ADC) circuit, at least one digital-to-analog conversion (DAC) circuit,or at least one ADC and at least one DAC.
 3. The programmable device ofclaim 1, wherein the first processing function implemented as thehardened circuit includes a digital front end (DFE) function thatcomprises at least one of: a filter circuit, a sample-rate conversioncircuit, and a mixer circuit or a transform function.
 4. Theprogrammable device of claim 1, wherein the first processing functionimplemented as the hardened circuit includes a transform function thatcomprises at least one of: a time-to-frequency domain transform circuitand a frequency-to-time domain transform circuit.
 5. The programmabledevice of claim 1, wherein the second processing function implemented bythe configurable functionality of the programmable subsystem includes atleast one of a digital predistortion (DPD) circuit and a calibrationcircuit.
 6. The programmable device of claim 1, wherein the programmablesubsystem comprises programmable logic that includes columns ofprogrammable tiles and a programmable interconnect, and wherein thehardened circuit is disposed in at least one column of hardened tilesadjacent to or interspersed within the columns of programmable tiles. 7.The programmable device of claim 1, wherein the first processingfunction includes one or more common functions across a plurality ofapplications, or one or more common functions used by one or morestandards to which the plurality of applications adhere.
 8. Theprogrammable device of claim 1, wherein an input of the first processingfunction is coupled to an output of the endpoint circuit comprising aserial transceiver, and wherein an output of the first processingfunction is coupled to an input to the second processing function. 9.The programmable device of claim 1, further comprising: a plurality ofinter-die interface circuits, wherein the hardened circuit in thedigital processing circuit is coupled to the plurality of inter-dieinterface circuits.
 10. A programmable device, comprising: at least oneprogrammable subsystem having a configurable functionality; a signalconversion circuit; hardened circuitry having a predeterminedfunctionality; and an endpoint circuit coupled to the signal conversioncircuit through both the hardened circuitry and the at least oneprogrammable subsystem.
 11. The programmable device of claim 10, whereinthe signal conversion circuit comprises at least one analog-to-digitalconversion (ADC) circuit, at least one digital-to-analog conversion(DAC) circuit, or at least one ADC and at least one DAC.
 12. Theprogrammable device of claim 10, wherein the at least one programmablesubsystem comprises at least one of: a programmable logic, an array ofdata processing engines (DPEs), and a processing system.
 13. Theprogrammable device of claim 10, wherein the hardened circuitry includesone or more common functions across a plurality of applications, or oneor more common functions used by one or more standards to which theplurality of applications adhere.
 14. The programmable device of claim10, wherein the hardened circuitry comprises at least one of: a filtercircuit, a sample-rate conversion circuit, and a mixer circuit.
 15. Theprogrammable device of claim 10, wherein the hardened circuitrycomprises at least one of: a time-to-frequency domain transform circuitand a frequency-to-time domain transform circuit.
 16. A programmabledevice, comprising: a signal conversion circuit; a digital processingcircuit; and an endpoint circuit coupled to the signal conversioncircuit through the digital processing circuit, wherein the digitalprocessing circuit includes a first digital processing functionimplemented as a hardened circuit having a predetermined functionality,and a second digital processing function implemented by a configurablefunctionality of a programmable subsystem.
 17. The programmable deviceof claim 16, wherein the programmable subsystem comprises at least oneof: a programmable logic, an array of data processing engines (DPEs),and a processing system.
 18. The programmable device of claim 16,wherein the first digital processing function implemented as thehardened circuit includes a digital front end (DFE) function or atransform function.
 19. The programmable device of claim 16, wherein thefirst digital processing function includes one or more common functionsacross a plurality of applications, or one or more common functions usedby one or more standards to which the plurality of applications adhere.20. The programmable device of claim 19, wherein the second digitalprocessing function includes one or more functions that are unique amongthe plurality of applications, or one or more functions that arenon-compliant with the one or more standards.